<template>
  <div class="img-list">
    <!-- 顶部组件 -->
    <My-Header header_title="图文资讯"></My-Header>

    <div class="cate">
      <ul id="cateul">
        <li  @click="handleImgList(0)"><span>全部</span></li>
        <li v-for="item in imgCates" :key="item.id" @click="handleImgList(item.id)">
          <span>{{item.title}}</span>
        </li>
      </ul>
    </div>
    <div class="img-list-box">
      <ul>
        <li v-for="item in imgList" :key="item.id">
          <router-link :to="'/imgDetail/'+ item.id"><img :src="item.img_url" alt="item.title"></router-link>
          <p>
            <span class="title">{{item.title}}</span>
            {{item.zhaiyao}}
          </p>
        </li>
      </ul>
    </div>
  </div>
</template>

<script>
// 引入已封装好MyHeader组件
import MyHeader from '@/components/MyHeader'
// 引入封装好的请求函数
import { getImgCategory, getImgList } from '@/api'

export default {
  // 注入需要使用的组件
  components: {
    // 头部组件
    MyHeader
  },
  data () {
    return {
      // 图片列表顶部分类
      imgCates: [],
      // 图片列表
      imgList: []
    }
  },
  created () {
    /* 初始化图片列表顶部 */
    this.initImgCates()
    /* 初始化图片列表 */
    this.initImgList()
  },
  methods: {
    /* 初始化图片列表顶部 */
    initImgCates () {
      getImgCategory().then(res => {
        if (res.status === 0) {
          // 图片顶部列表分类
          this.imgCates = res.message
          // 修改存储图片顶部列表分类ul的宽度
          document.getElementById('cateul').style.width = (this.imgCates.length + 1) * 60 + 'px'
        } else {
          this.$message.error('获取数据失败')
        }
      })
    },
    /* 初始化图片列表 */
    initImgList () {
      // 获取全部
      getImgList(0).then(res => {
        if (res.status === 0) {
          this.imgList = res.message
        }
      })
    },
    /* 根据id获取某类图片列表 */
    handleImgList (id) {
      getImgList(id).then(res => {
        if (res.status === 0) {
          this.imgList = res.message
        }
      })
    }
  }
}
</script>

<style lang="scss" scoped>
  .img-list {
    margin-bottom: 55px;
    margin-top: 40px;
  }
  .cate {
    max-width: 100%;
    margin: 0;
    overflow-x:auto;
    overflow-y: hidden;
    font-size: 14px;
    ul {
      padding-left: 10px;
      margin: 5px 0;
      li {
        list-style: none;
        display: inline-block;
        padding: 0 0 0 5px;
        span {
          color:#0094ff;
        }
      }
    }
  }
  .img-list-box {
    ul {
      padding: 0;
      li {
        list-style: none;
        position: relative;
      }
    }
    p {
      font-size: 14px;
      color: #fff;
      position: absolute;
      bottom: 0px;
      left: 0px;
      background-color: rgba(0,0,0,0.4);
      .title {
        font-weight: bold;
      }
    }
    img {
      width: 100%;
    }
  }

  image[lazy=loading] {
    width: 100%;
    margin: auto;
  }
</style>
